Webpage search

ABSTRACT

Systems, methods, and machine-readable media are disclosed to provide a search of contents of a webpage, where the search feature is provided as part of the webpage. In one embodiment, a method of providing such an in-page search of contents of a webpage can comprise reading a user&#39;s search criteria through an element of the webpage. The contents of the webpage can be searched to identify text matching the search criteria. Formatting instructions can be inserted into the webpage to change the appearance of the identified text relative to other text on the webpage. The webpage can be redisplayed with the inserted formatting instructions.

BACKGROUND OF THE INVENTION

Embodiments of the present invention relate generally to the field ofinformation searches and more particularly to searches of the contentsof a webpage, where the search feature is provided as part of thewebpage.

Webpages can be very short containing little textual information or mayinclude mostly graphics with little other information. In other cases, awebpage can be very long and contain a large amount of textualinformation. In such cases, locating a specific word or phrase ofinterest to a user can be difficult. For example, a search using acommon or popular search engine may discover a page with hundreds orthousands or more words with only a few, but relevant, occurrences ofthe user's search term. For the user to determine how relevant thisinformation is to him, he may need to read or scan a significant portionof the document to determine how or why the search engine detected thispage. For very long pages, trying to locate information in this way canbe very time consuming. In some cases, the user may not even find therelevant information before giving up.

Many, although not all, web browsers today have a built-in searchfeature that allows a user to search for text occurring on a currentlyviewed webpage. For example, Microsoft Internet Explorer provides a“Find (on This Page)” function available under the “Edit” selection ofthe top menu bar. With this function a user can enter a string for whichthe browser will search. The browser then jumps or scrolls the pagedirectly to the first occurrence of text that matches the search string.Subsequent occurrences of the string can be found by selecting a “FindNext” button which causes the page to scroll to display the subsequentoccurrences.

However, not all browsers offer such a function. Furthermore, thesebrowser-based searches are rather limited in their functionality. Theyallow a user to search for occurrences of a particular sting and mayallow a user to select searching forward or backward but no otherfunctionality is provided. No further functionality is provided. Forexample, available browser based searches are limited to searching thevisible portions of a webpage and cannot search a header, footer, ormetadata of a webpage and are limited to searching the entire, visiblecontents of the page. That is, they do not allow the developer or userof the browser to specify portions of the page to be searched and cannotsearch portions of the webpage that are not being displayed. Finally,the functionality of a browser-based search is strictly limited to thatsupplied by the code of the browser. The developer of the webpage has nocontrol over this functionality and cannot expand or modify thisfunctionality to suit the content of his webpage or service.

Hence, there is a need for methods and systems that allow for searchingthe contents of a webpage regardless of the browser used to view thepage.

BRIEF SUMMARY OF THE INVENTION

Systems, methods, and machine-readable media are disclosed to provide asearch of contents of a webpage, where the search feature is provided aspart of the webpage. In one embodiment, a method of providing such anin-page search of contents of a webpage can comprise reading a user'ssearch criteria through an element of the webpage. The contents of thewebpage can be searched to identify text matching the search criteria.Formatting instructions can be inserted into the webpage to change theappearance of the identified text relative to other text on the webpage.The webpage can be redisplayed with the inserted formattinginstructions.

According to one embodiment, inserting formatting instructions into thewebpage can further comprise removing the identified text from thewebpage, adding formatting instructions in front of and behind theremoved text, and reinserting the identified text and added formattinginstruction into the webpage at an original location of the identifiedtext. The formatting instructions can comprise HyperText Markup Language(HTML) tags. In some cases, the method can further comprise determiningwhether the identified text is visible to a user of the webpage. In sucha case, inserting formatting instructions into the webpage around theidentified text can comprise inserting formatting instructions into thewebpage around visible identified text.

According to another embodiment, the element of the webpage for readinga user's search criteria can comprise a search box. The search box caninclude a text box for accepting user input of the search criteriaand/or one or more elements for controlling the search. In some cases,the search box can be made visible on the webpage in response to a firstuser input and can be made invisible on the webpage in response to asecond user input.

According to yet another embodiment, a system for providing a webpageincluding an in-page search function can comprise a processor and amemory coupled with and readable by the processor. The memory cancontain instructions which, when executed by the processor, cause theprocessor to read a user's search criteria through an element of thewebpage, search contents of the webpage to identify text matching thesearch criteria, insert formatting instructions into the webpage tochange the appearance of the identified text relative to other text onthe webpage, and redisplay the webpage with the inserted formattinginstructions.

According to still another embodiment, a machine-readable media can havestored thereon a series of instructions. The instructions, when executedby a processor, can cause the processor to provide a webpage includingan in-page search function by reading a user's search criteria throughan element of the webpage, searching the contents of the webpage toidentify text matching the search criteria, inserting formattinginstructions into the webpage to change the appearance of the identifiedtext relative to other text on the webpage, and redisplaying the webpagewith the inserted formatting instructions.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating components of an exemplaryoperating environment in which various embodiments of the presentinvention may be implemented.

FIG. 2 is a block diagram illustrating an exemplary computer system inwhich embodiments of the present invention may be implemented.

FIG. 3 is a flowchart illustrating a process for providing an in-pagesearch according to one embodiment of the present invention.

FIG. 4 illustrates a webpage with a search element for providing anin-page search according to one embodiment of the present invention.

FIG. 5 illustrates a webpage with a search element for providing anin-page search according to an alternative embodiment of the presentinvention.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of various embodiments of the present invention. It willbe apparent, however, to one skilled in the art that embodiments of thepresent invention may be practiced without some of these specificdetails. In other instances, well-known structures and devices are shownin block diagram form.

Embodiments of the present invention provide methods, systems andmachine-readable media for providing a search of contents of a webpage,where the search feature is provided as part of the webpage andtherefore, not dependent upon the functionality of the browser used toview the page. As will be described in detail below, an in-page searchof contents of a webpage can comprise reading a user's search criteriathrough an element of the webpage. The contents of the webpage can besearched to identify text matching the search criteria. Formattinginstructions can be inserted into the webpage to change the appearanceof the identified text relative to other text on the webpage. Thewebpage can be redisplayed with the inserted formatting instructions.

FIG. 1 is a block diagram illustrating components of an exemplaryoperating environment in which various embodiments of the presentinvention may be implemented. The system 100 includes one or more usercomputers 105, 110, and 115. The user computers 105, 110, and 115 may begeneral purpose personal computers (including, merely by way of example,personal computers and/or laptop computers running various versions ofMicrosoft Corp.'s Windows and/or Apple Corp.'s Macintosh operatingsystems) and/or workstation computers running any of a variety ofcommercially-available UNIX or UNIX-like operating systems. These usercomputers 105, 110, 115 may also have any of a variety of applications,including for example, database client and/or server applications, andweb browser applications. Alternatively, the user computers 105, 110,and 115 may be any other electronic device, such as a thin-clientcomputer, Internet-enabled mobile telephone, and/or personal digitalassistant, capable of communicating via a network (e.g., the network 120described below) and/or displaying and navigating webpages or othertypes of electronic documents. Although the exemplary system 100 isshown with three user computers, any number of user computers may besupported.

System 100 further includes a network 120. The network 120 may can beany type of network familiar to those skilled in the art that cansupport data communications using any of a variety ofcommercially-available protocols, including without limitation TCP/IP,SNA, IPX, AppleTalk, and the like. Merely by way of example, the network120 maybe a local area network (“LAN”), such as an Ethernet network, aToken-Ring network and/or the like; a wide-area network; a virtualnetwork, including without limitation a virtual private network (“VPN”); the Internet; an intranet; an extranet; a public switched telephonenetwork (“PSTN ”); an infra-red network; a wireless network (e.g., anetwork operating under any of the IEEE 802.11 suite of protocols, theBluetooth protocol known in the art, and/or any other wirelessprotocol); and/or any combination of these and/or other networks.

The system may also include one or more server computers 125, 130. Oneserver may be a web server 125, which may be used to process requestsfor webpages or other electronic documents from user computers 105, 110,and 120. The web server can be running an operating system including anyof those discussed above, as well as any commercially-available serveroperating systems. The web server 125 can also run a variety of serverapplications, including HTTP servers, FTP servers, CGI servers, databaseservers, Java servers, and the like. In some instances, the web server125 may publish available operations as one or more web services.

The system 100 may also include one or more file and/or applicationservers 130, which can, in addition to an operating system, include oneor more applications accessible by a client running on one or more ofthe user computers 105, 110, 115. The server(s) 130 may be one or moregeneral purpose computers capable of executing programs or scripts inresponse to the user computers 105, 110 and 115. As one example, theserver may execute one or more web applications. The web application maybe implemented as one or more scripts or programs written in anyprogramming language, such as Java™, C, C# or C++, and/or any scriptinglanguage, such as Perl, Python, or TCL, as well as combinations of anyprogramming/scripting languages. The application server(s) 130 may alsoinclude database servers, including without limitation thosecommercially available from Oracle, Microsoft, Sybase™, IBM™ and thelike, which can process requests from database clients running on a usercomputer 105.

In some embodiments, an application server 130 may create webpagesdynamically. The webpages created by the web application server 130 maybe forwarded to a user computer 105 via a web server 125. Similarly, theweb server 125 may be able to receive webpage requests, web servicesinvocations, and/or input data from a user computer 105 and can forwardthe webpage requests and/or input data to the web application server130.

In further embodiments, the server 130 may function as a file server.Although for ease of description, FIG. 1 illustrates a separate webserver 125 and file/application server 130, those skilled in the artwill recognize that the functions described with respect to servers 125,130 may be performed by a single server and/or a plurality ofspecialized servers, depending on implementation-specific needs andparameters.

The system 100 may also include a database 135. The database 135 mayreside in a variety of locations. By way of example, database 135 mayreside on a storage medium local to (and/or resident in) one or more ofthe computers 105, 110, 115, 125, 130. Alternatively, it may be remotefrom any or all of the computers 105, 110, 115, 125, 130, and incommunication (e.g., via the network 120) with one or more of these. Ina particular set of embodiments, the database 135 may reside in astorage-area network (“SAN”) familiar to those skilled in the art.Similarly, any necessary files for performing the functions attributedto the computers 105, 110, 115, 125, 130 may be stored locally on therespective computer and/or remotely, as appropriate. In one set ofembodiments, the database 135 may be a relational database that isadapted to store, update, and retrieve data in response to SQL-formattedcommands.

FIG. 2 is a block diagram illustrating an exemplary computer system inwhich embodiments of the present invention may be implemented. Thisexample illustrates a computer system 200 such as may be used, in whole,in part, or with various modifications, to provide a server or a clientsuch as those discussed above.

The computer system 200 is shown comprising hardware elements that maybe electrically coupled via a bus 255. The hardware elements may includeone or more central processing units (CPUs) 205, one or more inputdevices 210 (e.g., a mouse, a keyboard, etc.), and one or more outputdevices 215 (e.g., a display device, a printer, etc.). The computersystem 200 may also include one or more storage devices 220. By way ofexample, storage device(s) 220 may be disk drives, optical storagedevices, solid-state storage device such as a random access memory(“RAM”) and/or a read-only memory (“ROM”), which can be programmable,flash-updateable and/or the like.

The computer system 200 may additionally include a computer-readablestorage media reader 225, a communications system 230 (e.g., a modem, anetwork card (wireless or wired), an infra-red communication device,etc.), and working memory 240, which may include RAM and ROM devices asdescribed above. In some embodiments, the computer system 200 may alsoinclude a processing acceleration unit 235, which can include a DSP, aspecial-purpose processor and/or the like.

The computer-readable storage media reader 225 can further be connectedto a computer-readable storage medium, together (and, optionally, incombination with storage device(s) 220) comprehensively representingremote, local, fixed, and/or removable storage devices plus storagemedia for temporarily and/or more permanently containingcomputer-readable information. The communications system 230 may permitdata to be exchanged with the network 220 and/or any other computerdescribed above with respect to the system 200.

The computer system 200 may also comprise software elements, shown asbeing currently located within a working memory 240, including anoperating system 245 and/or other code 250. It should be appreciatedthat alternate embodiments of a computer system 200 may have numerousvariations from that described above. For example, customized hardwaremight also be used and/or particular elements might be implemented inhardware, software (including portable software, such as applets), orboth. Further, connection to other computing devices such as networkinput/output devices may be employed.

Software of computer system 200 may include code 250 for implementingany or all of the function of a webpage search as described herein. Forexample, software, stored on and/or executed by a computer system suchas system 200, can provide or serve a webpage containing an in-pagesearch. In other cases, a system such as system 200 may act as a client,providing or displaying to a user via a web browser a webpage includingan in-page search.

Generally speaking, a method of providing a webpage search, according toone embodiment of the present invention, can comprise reading a user'ssearch criteria through an element of the webpage. The contents of thewebpage can be searched to identify text matching the search criteria.Formatting instructions can be inserted into the webpage to change theappearance of the identified text relative to other text on the webpage.The webpage can be redisplayed with the inserted formattinginstructions. As will be discussed in detail below, these functions canbe performed by software, such as Java applets, Java Script, VB Script,Active X controls, or other types of code, included in the webpage.

FIG. 3 is a flowchart illustrating a process for providing an in-pagesearch according to one embodiment of the present invention. In thisexample, the process begins by displaying 305 a search element to a useror viewer of the webpage. The search element can be any of a variety ofpossible elements such as an overlay box, popup window, drop down menu,or other type of webpage element, but can be provided as part of thewebpage. That is, code for providing the search element and performingthe search functions can be included, for example, as HyperText MarkupLanguage (HTML) and/or Java Script or other scripting language. Forexample, the contents, i.e., text, graphics, sound, etc. of a webpage istypically formatted and presented in HTML or other markup language. Thesearch element may also be formatted and presented using a markuplanguage while the functions of search itself may be performed by codeincluded in the webpage for performing a client-side process such as aJava applet Java Script, VB Script, Active X control etc. or by code forinitiating a server-side process such as implemented by CGI or otherprocess However implemented, the search element can provide a means forthe user of the webpage to enter a string or other search criteria andcan also provide controls for performing the search. Exemplary searchelements will be described below with reference to FIGS. 4 and 5.

Regardless of the exact type or format of the search element, a user'ssearch criteria can be read 310 through the search element of thewebpage and the contents of the webpage can be searched 315 to identifytext matching the search criteria. That is, the contents of the webpagecan be searched, for example by a script language or client-side programassociated with the search element as discussed above, for text matchingthe string or other search criteria entered through the search elementby the user.

A determination 320 can be made as to whether text matching the searchcriteria has been found in the content of the webpage. Optionally, anadditional determination 325 can be made as to whether the text found320 is visible text within the webpage. That is, in some cases, theheader, footer, metadata and other portions of the page not typicallyvisible to the user can be searched as well as or instead of the visibleportions of the page. If the entire content of the webpage is searched,matching text may be found in the header, metadata, or other portion ofthe webpage not typically displayed to the user of the webpage. Suchtext may not be relevant to the user and therefore may be excluded fromthe search results. In other cases, matching text found in the header,footer, metadata or other portion of the webpage not visible to the usercan be made visible, i.e., can be edited and displayed to the user, inany of a variety of ways. For example, a list of matching metadata canbe displayed in the webpage, in a pop-up window, or in another manner.

If 320 matching text is found and the text is visible 325, if such acheck is made, the matching text can be modified to highlight it orotherwise make it easily visible or recognizable to the user. Generallyspeaking, this can be accomplished by inserting 335 formattinginstructions such as HyperText Markup Language (HTML) tags into thewebpage, such as around the identified text, to change the appearance ofthe identified text relative to other text on the webpage. In othercases, other types of formatting instructions can be added to ormodified in the webpage. For example, properties of a Cascading StyleSheet (CSS) can be added or modified to change the appearance of thematching text relative to the rest of the web page.

Optionally, modifying the text can comprise removing 330 the identifiedtext from the webpage prior to adding formatting instructions in frontof and behind the removed text 335, and reinserting 335 the identifiedtext and added formatting instruction into the webpage at an originallocation of the identified text. Alternatively or additionally, otherchanges can be made to the webpage. That is, rather than insertingformatting instructions before and/or after the matching text,formatting instructions can be inserted into the webpage to provide alist or summary of matching text at the top of the webpage. Otherpossibilities for formatting matching text will be discussed below.Either way, formatting instructions can be added to the content of thewebpage, for example by a scripting language such as Java Script, VBscript, etc., by a client side program coded in Java, Active X, etc. orby a server-side process such as implemented by CGI or other process andthe webpage can be redisplayed 345 with the inserted formattinginstructions.

Exactly how the matching text is formatted can vary widely dependingupon the implementation. Some examples of formatting for the matchingtext can include but are not limited to changing the font, font color,or font size, changing the typeface to bold, underline, italics, etc.,adding highlighting or shading around or behind the text, making thetext blink, making the text a link anchor so that a user can jump orhyperlink to a next, previous, first, or last occurrence in a longdocument, etc. In other cases, the matching text can be moved or copiedand presented in a list, summary, or other format in the webpage orelsewhere. Generally speaking, any text effect provided by HTML or othermarkup language used to provide the webpage or other information used tocontrol the appearance of the webpage such as a CSS can be used tochange the appearance of the matching text. Additional examples offormatting the matching text will be discussed below.

FIG. 4 illustrates an exemplary webpage with an in-page search accordingto one embodiment of the present invention. In this example, a webpage410 is shown displayed in a browser window 400. As should be apparentfrom the discussion thus far, the exact browser used is largelyirrelevant since the various embodiments of the present inventionprovide a search feature that is part of, i.e., built into, the webpageitself using languages that can be rendered or executed by any browser,including but not limited to HTML, Java, Java Script, VB Script, ActiveX etc.

In this example, the webpage includes a search element 405 representedby a box at the top of the page 410. It should be understood that thelayout and format of the search element 405 and the webpage 410 can varywidely without departing from the scope of the present invention. Forexample, rather than the search box 405 as shown here, a banner, frame,or other graphical device can be place anywhere on the page.Furthermore, as will be discussed, the contents of the search elementcan vary.

As shown here, the search element 405 includes a text box 415 foraccepting user input of the search criteria. That is, the text box 415can provide a means through which the user can enter a string or othersearch criteria. In the example shown here, the word “we” has beenentered as the search criteria.

Also in the search element 415 is a number of controls 420-440 in theform of buttons for controlling the search. These controls 420-440include a submit button 420 for initiating the search after a searchcriteria has been entered in text box 415 and a clear button 425 forclearing the search criteria from the text box 415. Also included inthis example are a next button 435 and a previous button 440 that can beused for navigating through the search results. For example, when usedto search very large webpages, especially a page that scrolls far beyondthe bottom of the browser window, it may be convenient for the user tobe able to jump from one match to the next, or previous match.Therefore, the matching text can be marked with a link anchor tag andthe search function can maintain a list of the list anchors allowing thesearch function to jump from one to the next or previous match via thebuttons.

The search results are shown within the text of the webpage. Here thematching text is shown in bold and underlined. Additionally, the firstoccurrence 430 of matching text is shown in a box which may or may notbe highlighted or colored. Such a box or highlighting may be useful fornavigating results using the next and previous buttons 435 and 440 Inother cases, all matching text may be similarly highlighted.

It should be understood that additional variations are contemplated andconsidered to be within the scope of the present invention. For example,while not shown here, different or additional types of controls may beused in the search element. For example, a set of check boxes, radiobuttons, or a menu may be provided for allowing the user to select howhe wants the results to be shown. For example, a set of radio buttonsmay be included through which the user can select whether he wants theresults shown in bold, in a particular color, highlighted, etc. Inanother example, a drop down menu may be provided to allow the user toselect colors for matching text and/or background highlighting, thedefault direction of navigation or even to configure how the searchelement appears and what controls are found therein. Additionally, theappearance and location of the search element 405 can vary widely. Forexample, the search element 405 can comprise a frame at the top, bottom,left, or right edge of the browser window 400. Another alternative willnow be discussed.

FIG. 5 illustrates an exemplary webpage with an in-page search accordingto an alternative embodiment of the present invention. In this example,a webpage 501 is shown displayed in a browser window 500. The searchelement 505 of the webpage in this case comprises a search box in theform of an overlay, popup window, or similar feature. The search box 505includes a text box 510 for accepting user input of the search criteria.The search box 505 includes a number of elements in the form of buttons515-530 for controlling the search. In this example the controls includea submit button 515 for initiating the search after a search criteriahas been entered in text box 510 and a clear button 530 for clearing thesearch criteria from the text box 510. Also included in this example area next button 520 and a previous button 525 that can be used fornavigating through the search results. Other controls that may be usedinclude, but are not limited to, a first button for jumping to the firstoccurrence of matching text and a last button for jumping to the lastoccurrence of matching text.

In this example, for the sake of clarity, the search box 505 is shown ina blank portion of the webpage 501. However, the search box 505 need notbe static and may be displayed in any potion of the webpage 501. Forexample, the search box 505 may be implemented as an overlay, popupwindow, or other similar graphic. In such a case, the search box 505may, by default be invisible. Then, for example, the search box 505 canbecome visible on the webpage 501 in response to a first user input suchas a user moving the cursor over a specified spot on the webpage 501,clicking a link, pressing a key or combination of keys on the keyboard,etc. Furthermore, the search box 505 can become invisible on the webpage501 in response to a second user input such as clicking a close button,moving the cursor away from the search box 505, pressing a key orcombination of keys on the keyboard, etc.

In the foregoing description, for the purposes of illustration, methodswere described in a particular order. It should be appreciated that inalternate embodiments, the methods may be performed in a different orderthan that described. It should also be appreciated that the methodsdescribed above may be performed by hardware components or may beembodied in sequences of machine-executable instructions, which may beused to cause a machine, such as a general-purpose or special-purposeprocessor or logic circuits programmed with the instructions to performthe methods. These machine-executable instructions may be stored on oneor more machine readable mediums, such as CD-ROMs or other type ofoptical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magneticor optical cards, flash memory, or other types of machine-readablemediums suitable for storing electronic instructions. Alternatively, themethods may be performed by a combination of hardware and software.

While illustrative and presently preferred embodiments of the inventionhave been described in detail herein, it is to be understood that theinventive concepts may be otherwise variously embodied and employed, andthat the appended claims are intended to be construed to include suchvariations, except as limited by the prior art.

1. A method of providing an in-page search of contents of a webpage, themethod comprising: reading a user's search criteria through an elementof the webpage; searching the contents of the webpage to identify textmatching the search criteria; inserting formatting instructions into thewebpage to change the appearance of the identified text relative toother text on the webpage; and redisplaying the webpage with theinserted formatting instructions.
 2. The method of claim 1, whereininserting formatting instructions into the webpage further comprises:removing the identified text from the webpage; adding formattinginstructions in front of and behind the removed text; and reinsertingthe identified text and added formatting instruction into the webpage atan original location of the identified text.
 3. The method of claim 2,wherein the formatting instructions comprise HyperText Markup Language(HTML) tags.
 4. The method of claim 1, further comprising determiningwhether the identified text is visible to a user of the webpage.
 5. Themethod of claim 4, wherein inserting formatting instructions into thewebpage around the identified text comprises inserting formattinginstructions into the webpage around visible identified text.
 6. Themethod of claim 1, wherein the element of the webpage comprises a searchbox.
 7. The method of claim 6, wherein the search box includes a textbox for accepting user input of the search criteria.
 8. The method ofclaim 6, wherein the search box includes one or more elements forcontrolling the search.
 9. The method of claim 6, further comprisingcausing the search box to become visible on the webpage in response to afirst user input.
 10. The method of claim 9, further comprising causingthe search box to become invisible on the webpage in response to asecond user input.
 11. A system for providing a webpage including anin-page search function, the system comprising: a processor; and amemory coupled with and readable by the processor, the memory containinginstructions which, when executed by the processor, cause the processorto read a user's search criteria through an element of the webpage,search contents of the webpage to identify text matching the searchcriteria, insert formatting instructions into the webpage to change theappearance of the identified text relative to other text on the webpage,and redisplay the webpage with the inserted formatting instructions. 12.The system of claim 11, wherein inserting formatting instructions intothe webpage further comprises: removing the identified text from thewebpage; adding formatting instructions in front of and behind theremoved text; and reinserting the identified text and added formattinginstruction into the webpage at an original location of the identifiedtext.
 13. The system of claim 12, wherein the formatting instructionscomprise HyperText Markup Language (HTML) tags.
 14. The system of claim11, further comprising determining whether the identified text isvisible to a user of the webpage.
 15. The system of claim 14, whereininserting formatting instructions into the webpage around the identifiedtext comprises inserting formatting instructions into the webpage aroundvisible identified text.
 16. The system of claim 11, wherein the elementof the webpage comprises a search box.
 17. The system of claim 16,wherein the search box includes a text box for accepting user input ofthe search criteria.
 18. The system of claim 16, wherein the search boxincludes one or more elements for controlling the search.
 19. The systemof claim 16, further comprising causing the search box to become visibleon the webpage in response to a first user input.
 20. The system ofclaim 19, further comprising causing the search box to become invisibleon the webpage in response to a second user input.
 21. Amachine-readable media having stored thereon a series of instructionswhich, when executed by a processor, cause the processor to provide awebpage including an in-page search function by: reading a user's searchcriteria through an element of the webpage; searching the contents ofthe webpage to identify text matching the search criteria; insertingformatting instructions into the webpage to change the appearance of theidentified text relative to other text on the webpage; and redisplayingthe webpage with the inserted formatting instructions.
 22. Themachine-readable media of claim 21, wherein inserting formattinginstructions into the webpage further comprises: removing the identifiedtext from the webpage; adding formatting instructions in front of andbehind the removed text; and reinserting the identified text and addedformatting instruction into the webpage at an original location of theidentified text.
 23. The machine-readable media of claim 22, wherein theformatting instructions comprise HyperText Markup Language (HTML) tags.24. The machine-readable media of claim 21, further comprisingdetermining whether the identified text is visible to a user of thewebpage.
 25. The machine-readable media of claim 24, wherein insertingformatting instructions into the webpage around the identified textcomprises inserting formatting instructions into the webpage aroundvisible identified text.
 26. The machine-readable media of claim 21,wherein the element of the webpage comprises a search box.
 27. Themachine-readable media of claim 26, wherein the search box includes atext box for accepting user input of the search criteria.
 28. Themachine-readable media of claim 26, wherein the search box includes oneor more elements for controlling the search.
 29. The machine-readablemedia of claim 26, further comprising causing the search box to becomevisible on the webpage in response to a first user input.
 30. Themachine-readable media of claim 29, further comprising causing thesearch box to become invisible on the webpage in response to a seconduser input.